home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / AppInstall / Progress.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  3.5 KB  |  95 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import warnings
  5. warnings.filterwarnings('ignore', 'apt API not stable yet', FutureWarning)
  6. import apt
  7. import apt_pkg
  8. import gtk
  9. STEPS_UPDATE_CACHE = [
  10.     12,
  11.     25,
  12.     37,
  13.     50,
  14.     100]
  15.  
  16. class GtkOpProgressWindow(apt.progress.OpProgress):
  17.     
  18.     def __init__(self, glade, parent, steps = STEPS_UPDATE_CACHE):
  19.         self.steps = steps[:]
  20.         self.base = 0
  21.         self.old = 0
  22.         self.next = int(self.steps.pop(0))
  23.         self.window_progress = glade.get_widget('window_progress')
  24.         self.progressbar_cache = glade.get_widget('progressbar_cache')
  25.         self.label_action = glade.get_widget('label_action')
  26.         self.window_progress.realize()
  27.         self.window_progress.window.set_functions(gtk.gdk.FUNC_MOVE)
  28.         if hasattr(parent, 'window'):
  29.             parent = parent.window
  30.         
  31.         if parent is not None:
  32.             self.window_progress.window.set_transient_for(parent)
  33.         
  34.  
  35.     
  36.     def update(self, percent):
  37.         self.window_progress.show()
  38.         if self.old > percent:
  39.             self.base = self.next
  40.             
  41.             try:
  42.                 self.next = int(self.steps.pop(0))
  43.  
  44.         
  45.         progress = self.base + (percent / 100) * (self.next - self.base)
  46.         self.old = percent
  47.         self.progressbar_cache.set_fraction(progress / 100)
  48.         if self.subOp != '':
  49.             self.label_action.set_markup('<i>' + '%s' % self.subOp + '</i>')
  50.         
  51.         while gtk.events_pending():
  52.             gtk.main_iteration()
  53.  
  54.     
  55.     def __del__(self):
  56.         self.window_progress.hide()
  57.  
  58.  
  59.  
  60. class GtkCdromProgress(apt.progress.CdromProgress):
  61.     ''' Report the cdrom add progress
  62.         Subclass this class to implement cdrom add progress reporting
  63.     '''
  64.     
  65.     def __init__(self, parent):
  66.         self.progress = parent.progressbar_cache
  67.         self.status = parent.label_action
  68.         self.parent = parent
  69.         parent.window_progress.realize()
  70.         parent.window_progress.window.set_functions(gtk.gdk.FUNC_MOVE)
  71.         parent.window_progress.show()
  72.         parent.window_progress.set_transient_for(parent.window_main)
  73.         while gtk.events_pending():
  74.             gtk.main_iteration()
  75.  
  76.     
  77.     def update(self, text, step):
  78.         ''' update is called regularly so that the gui can be redrawn '''
  79.         if text:
  80.             self.status.set_text(text)
  81.         
  82.         self.progress.set_fraction(step / float(self.totalSteps))
  83.         while gtk.events_pending():
  84.             gtk.main_iteration()
  85.  
  86.     
  87.     def askCdromName(self):
  88.         return (False, '')
  89.  
  90.     
  91.     def changeCdrom(self):
  92.         return False
  93.  
  94.  
  95.